Arch Linux Clean the System
In this article, we\'re going to learn how to
- Clean package cache 
- Remove unused packages (orphans) 
- Clean the cache in our /home directory 
- Remove old config files 
- Remove duplicates, empty files, empty directories and broken symlinks 
- Find the largest files and directories 
- Clean Systemd journal 
NOTE that we may need to backup our linux system before the cleaning work.
Clean package cache
Pacman stores all the downloaded packages in
/var/cache/pacman/pkg/{.verbatim} and it does not remove the old or
uninstalled versions automatically.
We can use du{.verbatim} to check the size of the package cache before
removing
❯ du -sh /var/cache/pacman/pkg
23G     /var/cache/pacman/pkg
Remove cached packages that are not currently installed
sudo pacman -Sc
Remove all the packages from the cache, including the installed ones
sudo pacman -Scc
Remove unused packages (orphans)
Find the unused packages (orphans)
❯ sudo pacman -Qtdq
js78
Remove them
❯ sudo pacman -Rns $(pacman -Qtdq)
checking dependencies...
Packages (1) js78-78.15.0-4
Total Removed Size:  62.31 MiB
:: Do you want to remove these packages? [Y/n]
Clean the cache in /home{.verbatim} directory
First we can check the size of the cache within /home{.verbatim}
directory
❯ du -sh ~/.cache
1.2G    /home/zjh/.cache
Then remove all the cache files
rm -rf ~/.cache/*
Remove old config files
Arch Linux stores the configuration files in ~/.config/{.verbatim},
sometimes, may also put some old files in ~/.local/share/{.verbatim}.
We can check the folders in there and remove the ones we don\'t need.
Remove duplicates, empty files, empty directories and broken symlinks
We can use rmlint{.verbatim} to remove duplicates, empty files, empty
directories and broken symlinks
sudo pacman -S rmlint
Execute rmlint{.verbatim} with specifying the directory we want to
check
❯ rmlint ~
...
==> Note: Please use the saved script below for removal, not the above output.
==> In total 30320 files, whereof 4185 are duplicates in 2629 groups.
==> This equals 0.63 GB of duplicates which could be removed.
==> 519 other suspicious item(s) found, which may vary in size.
==> Scanning took in total 3.391s.
Wrote a sh file to: /home/xxx/rmlint.sh
Wrote a json file to: /home/xxx/rmlint.json
After executing the command above, rmlint{.verbatim} will generate
rmlint.sh{.verbatim} and rmlint.json{.verbatim}. We can open the
files to check which files, directories or broken symlinks will be
removed.
And then execute rmlint.sh{.verbatim} to perform deletion.
sh -c rmlint.sh
Find the largest files and directories
We can use ncdu{.verbatim} to find the largest files and directories
sudo pacman -S ncdu
Clean Systemd journal
Systemd storers logs in /var/log/journal/{.verbatim}.
We can keep the latest logs by limiting the size
sudo journalctl --vacuum-size=500M # only keep 500mb of the latest logs
or by limiting the time
sudo journalctl --vacuum-time=4weeks
We can also let the system to automatically clean the logs by setting
SystemMaxUse{.verbatim} in /etc/systemd/journald.conf{.verbatim}
SystemMaxUse=500M
Ref
- https://averagelinuxuser.com/clean-arch-linux/ 
- https://linuxhint.com/removepackagedependenciespacmanarch_linux/ 
